home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / util / TimeZoneNameUtility$TimeZoneNameGetter.class (.txt) < prev   
Encoding:
Java Class File  |  2006-11-29  |  2.7 KB  |  94 lines

  1. package sun.util;
  2.  
  3. import java.util.Locale;
  4. import java.util.Map;
  5. import java.util.Set;
  6. import java.util.spi.TimeZoneNameProvider;
  7. import sun.util.calendar.ZoneInfo;
  8.  
  9. class TimeZoneNameUtility$TimeZoneNameGetter implements LocaleServiceProviderPool.LocalizedObjectGetter<TimeZoneNameProvider, String[]> {
  10.    private static final TimeZoneNameUtility$TimeZoneNameGetter INSTANCE = new TimeZoneNameUtility$TimeZoneNameGetter();
  11.    // $FF: synthetic field
  12.    static final boolean $assertionsDisabled = !TimeZoneNameUtility.class.desiredAssertionStatus();
  13.  
  14.    private TimeZoneNameUtility$TimeZoneNameGetter() {
  15.    }
  16.  
  17.    public String[] getObject(TimeZoneNameProvider var1, Locale var2, String var3, Object... var4) {
  18.       if (!$assertionsDisabled && var4.length != 0) {
  19.          throw new AssertionError();
  20.       } else {
  21.          String[] var5 = null;
  22.          String var6 = var3;
  23.          if (var3.equals("GMT")) {
  24.             var5 = buildZoneStrings(var1, var2, var3);
  25.          } else {
  26.             Map var7 = ZoneInfo.getAliasTable();
  27.             if (var7 != null) {
  28.                if (var7.containsKey(var3)) {
  29.                   String var8;
  30.                   for(var8 = var3; (var6 = (String)var7.get(var6)) != null; var8 = var6) {
  31.                   }
  32.  
  33.                   var6 = var8;
  34.                }
  35.  
  36.                var5 = buildZoneStrings(var1, var2, var6);
  37.                if (var5 == null) {
  38.                   var5 = examineAliases(var1, var2, var6, var7, var7.entrySet());
  39.                }
  40.             }
  41.          }
  42.  
  43.          if (var5 != null) {
  44.             var5[0] = var3;
  45.          }
  46.  
  47.          return var5;
  48.       }
  49.    }
  50.  
  51.    private static String[] examineAliases(TimeZoneNameProvider var0, Locale var1, String var2, Map<String, String> var3, Set<Map.Entry<String, String>> var4) {
  52.       if (var3.containsValue(var2)) {
  53.          for(Map.Entry var6 : var4) {
  54.             if (((String)var6.getValue()).equals(var2)) {
  55.                String var7 = (String)var6.getKey();
  56.                String[] var8 = buildZoneStrings(var0, var1, var7);
  57.                if (var8 != null) {
  58.                   return var8;
  59.                }
  60.  
  61.                var8 = examineAliases(var0, var1, var7, var3, var4);
  62.                if (var8 != null) {
  63.                   return var8;
  64.                }
  65.             }
  66.          }
  67.       }
  68.  
  69.       return null;
  70.    }
  71.  
  72.    private static String[] buildZoneStrings(TimeZoneNameProvider var0, Locale var1, String var2) {
  73.       String[] var3 = new String[5];
  74.  
  75.       for(int var4 = 1; var4 <= 4; ++var4) {
  76.          var3[var4] = var0.getDisplayName(var2, var4 >= 3, var4 % 2, var1);
  77.          if (var4 >= 3 && var3[var4] == null) {
  78.             var3[var4] = var3[var4 - 2];
  79.          }
  80.       }
  81.  
  82.       if (var3[1] == null) {
  83.          var3 = null;
  84.       }
  85.  
  86.       return var3;
  87.    }
  88.  
  89.    // $FF: synthetic method
  90.    static TimeZoneNameUtility$TimeZoneNameGetter access$000() {
  91.       return INSTANCE;
  92.    }
  93. }
  94.